package com.wwy.arithmetic.newsuanfa;

/**
 * @author 王伟羽
 * @program: arithmetictest
 * @description: 移除元素
 * @create: 2025/04/01
 */

import java.util.ArrayList;
import java.util.List;

/**
 * 输入：nums = [3,2,2,3], val = 3
 * 输出：2, nums = [2,2,_,_]
 * 解释：你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
 * 你在返回的 k 个元素之外留下了什么并不重要（因此它们并不计入评测）。
 */
public class yichuyuansu {

    public int removeElement(int[] nums, int val) {
        if (nums.length == 0) {
            return 0;
        }
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                list.add(nums[i]);
            }
        }
        for (int a = 0; a < nums.length; a++) {
            if (a >= list.size()) {
                nums[a] = 0;
            } else {
                nums[a] = list.get(a);
            }
        }
        return list.size();
    }
    //nums = [3,2,2,3], val = 3
    public int removeElement1(int[] nums, int val) {
        int n = nums.length;
        int left = 0;
        for (int right = 0; right < n; right++) {
            if (nums[right] != val) {
                nums[left] = nums[right];
                left++;
            }
        }
        return left;
    }

//：nums = [1,1,2]
    public int removeDuplicates(int[] nums) {
        if(nums.length<=1){
            return nums.length;
        }
        int a  = 0 ;
        int b = 1;
        while (b<nums.length){
            if(nums[a]!=nums[b]){
                nums[a+1] = nums[b];
                a++;
            }
            b++;
        }
        return a;
    }

}
